package com.cnofd.demo;

import java.io.File;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.cnofd.agent.OfdSdkInit;
import com.cnofd.agent.OfdEditAgent;
import com.cnofd.demo.util.ConfigUtil;
import com.cnofd.demo.util.ImageUtil;
import com.cnofd.ofd.model.ImageModel;
import com.cnofd.ofd.model.MarkPosition;
import com.cnofd.ofd.model.MarkTextSetting;
import com.cnofd.ofd.model.ResultInfo;

/**
 * @ClassName: OfdEditAgentTest
 * @Description: OFD編輯功能测试
 * @author cnofd
 * @date 2022年1月22日
 */
public class OfdEditAgentTest {
    private static final Logger logger = LoggerFactory.getLogger(OfdEditAgentTest.class);

    private static String cfgLicenseFile;
    private static String cfgTempDir;
    private static String cfgWorkDir;
    private static String cfgDataBasePath;

    private static String sDataPath;
    private static String sOutPath;

    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        logger.info("01-启动：" + System.currentTimeMillis());

        // 读取配置文件
        Properties propConfig = ConfigUtil.getConfigProperties("init");
        cfgLicenseFile = ConfigUtil.getConfigKey(propConfig, "LicenseFile");
        cfgTempDir = ConfigUtil.getConfigKey(propConfig, "TempDir");
        cfgWorkDir = ConfigUtil.getConfigKey(propConfig, "WorkDir");
        cfgDataBasePath = ConfigUtil.getConfigKey(propConfig, "DataBasePath");

        // 加载授权文件
        if (!OfdSdkInit.cnofdSdkInit(System.getProperty("user.dir") + File.separator + cfgLicenseFile)) {
            // 授权失败退出
            return;
        }

        // 工作目录
        OfdSdkInit.setTempDir(cfgTempDir);
        OfdSdkInit.setWorkDir(cfgWorkDir);

        sDataPath = cfgDataBasePath;
        sOutPath = cfgDataBasePath + "OfdEdit/";

        logger.info("02-完成初始化：" + (System.currentTimeMillis() - start));

        // OFD页操作测试（合并、删除、添加等）
        ofdPageOprTest();

        // OFD页面修改（添加文本、图片、表格、水印等）
        ofdPageEdit();

        // OFD连续编辑测试
        ofdAppendTest();

        // OFD添加附件
        ofdAttachmentTest();
    }

    /**
     * OFD页面操作测试：包括OFD合并、插入指定页面、拆分指定页面、删除指定页面、添加图片页、插入图片页
     */
    public static void ofdPageOprTest() {
        long start = System.currentTimeMillis();
        logger.info("开始OFD页面操作测试：" + System.currentTimeMillis());

        ResultInfo result = new ResultInfo();

        // OFD合并
        List<String> srcFiles = new ArrayList<String>();
        srcFiles.add(sDataPath + "底图+表格3.ofd");

        logger.info("11-开始OFD合并：" + (System.currentTimeMillis() - start));
        result = OfdEditAgent.ofdMerge(sDataPath + "cnofd-result.ofd", srcFiles, sOutPath + "cnofd-result-merge.ofd");
        logger.info("11-完成OFD合并：" + (System.currentTimeMillis() - start) + result.getMessage());

        
        /*
        // OFD插入指定页面
        logger.info("13-开始OFD插入指定页面：" + (System.currentTimeMillis() - start));
        result = OfdEditAgent.ofdInsertPage(sDataPath + "cnofd-result.ofd", sOutPath + "cnofd-result-insertPage.ofd", sDataPath + "外部OFD测试文件/福析OFD版式样例文档（各种样式效果）.ofd", 1,2,4);
        logger.info("13-完成OFD插入指定页面：" + (System.currentTimeMillis() - start) + result.getMessage());

        // OFD拆分指定页面
        logger.info("14-开始OFD拆分指定页面：" + (System.currentTimeMillis() - start));
        result = OfdEditAgent.ofdSplitPage(sDataPath + "cnofd-result-1.ofd", sOutPath + "cnofd-result-splitPage.ofd", 1,2);
        logger.info("14-完成OFD拆分指定页面：" + (System.currentTimeMillis() - start) + result.getMessage());

        // OFD删除指定页面
        logger.info("15-开始OFD删除指定页面：" + (System.currentTimeMillis() - start));
        result = OfdEditAgent.ofdDeletePage(sDataPath + "cnofd-result-1.ofd", sOutPath + "cnofd-result-deletePage.ofd", 1,3);
        logger.info("15-完成OFD删除指定页面：" + (System.currentTimeMillis() - start) + result.getMessage());
        */

        // OFD添加图片页面
        try {
            // 获取图片信息
            float[] imgAxis1 = ImageUtil.getImageInfo(new File(sDataPath + "结婚照.jpg"));

            List<ImageModel> images = new ArrayList<ImageModel>();
            images.add(new ImageModel(imgAxis1[0], imgAxis1[1], "jpg", "1", Paths.get(sDataPath + "结婚照.jpg")
                    .toAbsolutePath()));

            logger.info("16-开始添加图片页面：" + (System.currentTimeMillis() - start));
            result = OfdEditAgent.ofdAddImagePage(sDataPath + "cnofd-result.ofd", images, sOutPath
                    + "cnofd-result-addimagepage.ofd");
            logger.info("16-完成添加图片页面：" + (System.currentTimeMillis() - start) + result.getMessage());

            logger.info("17-开始插入图片页面：" + (System.currentTimeMillis() - start));
            result = OfdEditAgent.ofdAddImagePage(sDataPath + "cnofd-result.ofd", 1, images, sOutPath
                    + "cnofd-result-addimagepage2.ofd");
            logger.info("17-完成插入图片页面：" + (System.currentTimeMillis() - start) + result.getMessage());

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //
        }

        // 基于模板及数据编辑OFD
        try {
            logger.info("18-开始基于模板及数据编辑OFD：" + (System.currentTimeMillis() - start));
            result = OfdEditAgent.ofdEditByTemplate(sDataPath + "cnofd-result-1.ofd", // 编辑前ofd文件
                    sDataPath + "form-edit.xml", // 表单xml文件
                    sDataPath + "data-edit.xml", // 数据xml文件
                    "name", // 数据结构类型：name结构、xpath结构
                    sDataPath + "customDatas.xml", // 元数据xml文件
                    sOutPath + "cnofd-result-edit.ofd"); // 输出编辑后ofd文件
            logger.info("18-结束基于模板及数据编辑OFD：" + (System.currentTimeMillis() - start) + result.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //
        }
    }

    /**
     * OFD页面修改功能测试：添加文本、图片、表格、水印等
     */
    public static void ofdPageEdit() {
        long start = System.currentTimeMillis();
        logger.info("开始OFD页面修改测试：" + System.currentTimeMillis());

        ResultInfo result = new ResultInfo();

        // OFD指定页面添加文本、图片、表格
        try {
            logger.info("21-开始OFD指定页面添加文本：" + (System.currentTimeMillis() - start));
            result = OfdEditAgent
                    .ofdAddText(
                            sDataPath + "cnofd-result.ofd",
                            1,
                            "<TextBox ID=\"0\" Boundary=\"50.02 56.02 50.02 10\" Name=\"/Certificate/Page/CZR\" Font=\"宋体\" FontSize=\"14\" Color=\"0 0 255\" alpha=\"80\" TextAlign=\"center\" VerticalAlign=\"top\" UnderlineStyle=\"Solid\" FontStyle=\"Regular\" LineSpace=\"1\" MultiLine=\"true\" FontSizeAuto=\"true\" LineBreak=\"\r\n\" LetterSpacing=\"1.5\" TagName=\"持证人2\"/>",
                            "陈建荣", sOutPath + "cnofd-result-addtext.ofd"); // 输出编辑后ofd文件
            logger.info("21-结束OFD指定页面添加文本：" + (System.currentTimeMillis() - start) + result.getMessage());

            logger.info("22-开始OFD指定页面添加图片：" + (System.currentTimeMillis() - start));
            result = OfdEditAgent
                    .ofdAddImage(
                            sDataPath + "cnofd-result.ofd",
                            1,
                            "<ImageBox ID=\"14\" Boundary=\"124.61 26.8 69.8 45.11\" Name=\"/Certificate/Page/HYZP\" Color=\"0 0 0\" Alpha=\"255\" TagName=\"合影照片2\"/>",
                            "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\ncQw5lPMxu4P2cT5T/9k=",
                            sOutPath + "cnofd-result-addimage.ofd"); // 输出编辑后ofd文件
            logger.info("22-结束OFD指定页面添加图片：" + (System.currentTimeMillis() - start) + result.getMessage());

            logger.info("23-开始OFD指定页面添加表格：" + (System.currentTimeMillis() - start));
            result = OfdEditAgent
                    .ofdAddTable(
                            sDataPath + "cnofd-result.ofd",
                            1,
                            "<TableBox ID=\"20\" Boundary=\"25 200 150 40\" Name=\"/Certificate/Page/BG2\" Color=\"0 0 0\" BorderStyle=\"solid\" BorderWidth=\"0.8\" LineWidth=\"0.4\" RowHeight=\"8\" ColWidth=\"20 40 40 50\"  TagName=\"表格2\"/>",
                            sOutPath + "cnofd-result-addtable.ofd"); // 输出编辑后ofd文件
            logger.info("23-结束OFD指定页面添加表格：" + (System.currentTimeMillis() - start) + result.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //
        }

        // OFD添加文本水印
        try {
            logger.info("24-开始OFD添加文本水印：" + (System.currentTimeMillis() - start));

            MarkPosition mark = new MarkPosition(40, 80, 80, 80, new int[] { 2 });
            mark.setAlpha(128);
            mark.setRotationAngle(-30);

            // 字体大小
            float fontSizePt = 16f; // 字体大小，为pt为单位
            float fontSizeMm = (int) (fontSizePt * 0.3527778F * 100.0F) / 100.0F;

            MarkTextSetting markTextSetting = new MarkTextSetting("□这是水印文字这是水印文字□", "宋体", fontSizeMm);
            markTextSetting.setColor("255 0 0");

            result = OfdEditAgent.ofdAddTextMark(sDataPath + "cnofd-result-1.ofd", markTextSetting, mark, sOutPath
                    + "cnofd-result-addTextMark.ofd"); // 输出编辑后ofd文件

            logger.info("24-结束OFD添加文本水印：" + (System.currentTimeMillis() - start) + result.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //
        }

        // OFD添加图片水印
        try {
            logger.info("25-开始OFD添加图片水印：" + (System.currentTimeMillis() - start));

            MarkPosition mark = new MarkPosition(135, 230, 35, 35, new int[] { 1, 2 });
            mark.setAlpha(128);
            mark.setRotationAngle(45);

            result = OfdEditAgent.ofdAddImageMark(sDataPath + "cnofd-result-1.ofd", sDataPath + "seal.png", mark,
                    sOutPath + "cnofd-result-addImageMark.ofd"); // 输出编辑后ofd文件

            logger.info("25-结束OFD添加图片水印：" + (System.currentTimeMillis() - start) + result.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //
        }
    }

    /**
     * OFD连续编辑功能测试
     */
    public static void ofdAppendTest() {
        long start = System.currentTimeMillis();
        logger.info("开始OFD连续编辑测试：" + System.currentTimeMillis());

        ResultInfo result = new ResultInfo();

        // OFD连续编辑
        try {
            logger.info("31-启动OFD连续编辑：" + (System.currentTimeMillis() - start));

            OfdEditAgent ofdEditAppend = new OfdEditAgent();
            ofdEditAppend.ofdAppendOpen(sDataPath + "cnofd-result-1.ofd", sOutPath + "cnofd-result-Append.ofd"); // 输出编辑后ofd文件

            logger.info("32-开始OFD指定页面追加文本：" + (System.currentTimeMillis() - start));
            result = ofdEditAppend
                    .ofdAppendText(
                            1,
                            "<TextBox ID=\"0\" Boundary=\"50.02 56.02 50.02 10\" Name=\"/Certificate/Page/CZR\" Font=\"宋体\" FontSize=\"14\" Color=\"0 0 255\" alpha=\"80\" TextAlign=\"center\" VerticalAlign=\"top\" UnderlineStyle=\"Solid\" FontStyle=\"Regular\" LineSpace=\"1\" MultiLine=\"true\" FontSizeAuto=\"true\" LineBreak=\"\r\n\" LetterSpacing=\"1.5\" TagName=\"持证人2\"/>",
                            "陈建荣");
            logger.info("32-结束OFD指定页面追加文本：" + (System.currentTimeMillis() - start));

            logger.info("33-开始OFD指定页面追加图片：" + (System.currentTimeMillis() - start));
            result = ofdEditAppend
                    .ofdAppendImage(
                            1,
                            "<ImageBox ID=\"14\" Boundary=\"124.61 26.8 69.8 45.11\" Name=\"/Certificate/Page/HYZP\" Color=\"0 0 0\" Alpha=\"255\" TagName=\"合影照片2\"/>",
                            "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\ncQw5lPMxu4P2cT5T/9k=");
            logger.info("33-结束OFD指定页面追加图片：" + (System.currentTimeMillis() - start));

            logger.info("34-开始OFD指定页面追加表格：" + (System.currentTimeMillis() - start));
            result = ofdEditAppend
                    .ofdAppendTable(
                            1,
                            "<TableBox ID=\"20\" Boundary=\"25 200 150 40\" Name=\"/Certificate/Page/BG2\" Color=\"0 0 0\" BorderStyle=\"solid\" BorderWidth=\"0.8\" LineWidth=\"0.4\" RowHeight=\"8\" ColWidth=\"20 40 40 50\"  TagName=\"表格2\"/>");
            logger.info("34-结束OFD指定页面追加表格：" + (System.currentTimeMillis() - start));

            logger.info("35-开始OFD追加文本水印：" + (System.currentTimeMillis() - start));

            MarkPosition mark = new MarkPosition(40, 80, 80, 80, new int[] { 2 });
            mark.setAlpha(128);
            mark.setRotationAngle(-30);

            // 字体大小
            float fontSizePt = 16f; // 字体大小，为pt为单位
            float fontSizeMm = (int) (fontSizePt * 0.3527778F * 100.0F) / 100.0F;

            MarkTextSetting markTextSetting = new MarkTextSetting("□这是水印文字这是水印文字□", "宋体", fontSizeMm);
            markTextSetting.setColor("255 0 0");

            result = ofdEditAppend.ofdAppendTextMark(markTextSetting, mark);

            logger.info("35-结束OFD追加文本水印：" + (System.currentTimeMillis() - start));

            logger.info("36-开始OFD追加图片水印：" + (System.currentTimeMillis() - start));

            MarkPosition mark2 = new MarkPosition(135, 230, 35, 35, new int[] { 1, 2 });
            // mark.setAlpha(128);
            mark.setRotationAngle(45);

            result = ofdEditAppend.ofdAppendImageMark(sDataPath + "seal.png", mark2);

            logger.info("36-结束OFD追加图片水印：" + (System.currentTimeMillis() - start));

            ofdEditAppend.ofdAppendClose();

            if (result.getStatus() == 0) {
                logger.info("36-结束OFD连续编辑：" + (System.currentTimeMillis() - start));
            } else {
                logger.info("36-失败OFD连续编辑：" + result.getMessage());
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //
        }

    }

    /**
     * OFD附件功能测试
     */
    public static void ofdAttachmentTest() {
        long start = System.currentTimeMillis();
        logger.info("开始OFD附件测试：" + System.currentTimeMillis());

        ResultInfo result = new ResultInfo();

        try {
            logger.info("41-开始OFD添加附件：" + (System.currentTimeMillis() - start));
            result = OfdEditAgent.ofdAddAttachment(sDataPath + "cnofd-result.ofd", Paths.get(sDataPath, "结婚照.jpg"),
                    sOutPath + "cnofd-result-addattachment.ofd"); // 输出编辑后ofd文件
            logger.info("41-结束OFD添加附件：" + (System.currentTimeMillis() - start) + result.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //
        }
    }
}